package com.student.xujiang.myallstudent.mrecyclerview;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;


import com.student.xujiang.R;

import java.util.List;

/**
 * 作者：xujiang on 2017/3/18 14:58 Created
 * 邮箱：xujiang5@163.com
 */
class RecyclerViewAdapter extends RecyclerView.Adapter{

    //调用adapter的引用
    private RecyclerMainActivity recyclerMain;

    private List<String> mData;

    //构造方法，不知道context可不可以
    public RecyclerViewAdapter(RecyclerMainActivity recyclerMain,List<String> mData){
        this.recyclerMain = recyclerMain;
        this.mData = mData;
    }

    //这三个函数直接实现继承的方法
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //返回一个ViewHolder，绑定了item的
        return new ViewHolder(LayoutInflater.from(recyclerMain).inflate(R.layout.item_recyclerview_listxianxi,parent,false));
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        ViewHolder vh = (ViewHolder) holder;

        String car = mData.get(position);

        vh.getNum().setText(car);
    }

    @Override
    public int getItemCount() {
        //返回数据长度
        return mData.size();
    }

    //需要一个内部类，继承ViewHolder
    class ViewHolder extends RecyclerView.ViewHolder{

        private View root;
        //get方法暴露出控件以便调用
        public TextView getNum() {
            return num;
        }

        //这下面是item里的控件，这里只有一个，所以就写了一个
        private TextView num;

        //构造方法传入一个View作为根 有时命名为root
        public ViewHolder(View itemView) {
            super(itemView);
            initBindView(itemView);

        }

        private void initBindView(View root) {
            //在此处对item里的控件与上面定义的控件进行绑定链接
            num = (TextView) root.findViewById(R.id.id_num);
        }


    }
}
